namespace DigiOffice.Integration.TBIXchangeAzure.Messages
open System
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations
[<AllowNullLiteral>]
type Environment() =
member val Title:String = null with get,set
member val Code:String = null with get,set
[<AllowNullLiteral>]
type Party() =
member val Title:String = null with get,set
member val Code:String = null with get,set
member val Version:String = null with get,set
member val Environment:Environment = null with get,set
[<AllowNullLiteral>]
type Header() =
member val MessageID:String = null with get,set
member val Timestamp:DateTime = new DateTime() with get,set
member val Sender:Party = null with get,set
member val Recipient:Party = null with get,set
member val RequestMessageID:Object = null with get,set
[<AllowNullLiteral>]
type Reference() =
member val GlobalID:String = null with get,set
member val Title:String = null with get,set
[<AllowNullLiteral>]
type Address() =
member val AddressLine1:String = null with get,set
member val AddressLine2:String = null with get,set
member val HouseNumber:String = null with get,set
member val HouseNumberSuffix:String = null with get,set
member val PostalCode:String = null with get,set
member val City:String = null with get,set
member val Country:Reference = null with get,set
[<AllowNullLiteral>]
type MailingAddress() =
member val POBox:String = null with get,set
member val PostalCode:String = null with get,set
member val City:String = null with get,set
member val Country:Reference = null with get,set
[<AllowNullLiteral>]
type Project() =
member val GlobalID:String = null with get,set
member val CreationDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val CreatedBy:String = null with get,set
member val ModifiedDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val ModifiedBy:String = null with get,set
member val Code:String = null with get,set
member val Name:String = null with get,set
member val Description1:String = null with get,set
member val Description2:String = null with get,set
member val Address:Address = null with get,set
member val MailingAddress:MailingAddress = null with get,set
member val ProjectCategoryReference:Reference = null with get,set
member val ProjectTypeReference:Reference = null with get,set
member val ProjectStatusReference:Reference = null with get,set
member val StartDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val EndDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val CompletionDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val Inactive:Boolean = new Boolean() with get,set
member val Website:String = null with get,set
member val IsTemplateProject:Boolean = new Boolean() with get,set
member val CustomFields:CustomField[] = [||] with get,set
[<AllowNullLiteral>]
type ProjectResponseMessage() =
member val Header:Header = null with get,set
member val ProjectReference:Reference = null with get,set
member val Project:Project = null with get,set
member val HousingTypes:HousingType[] = [||] with get,set
member val ConstructionBlocks:ConstructionBlock[] = [||] with get,set
member val ConstructionNumbers:ConstructionNumber[] = [||] with get,set
member val Documents:Document[] = [||] with get,set
member val PurchaseContracts:PurchaseContract[] = [||] with get,set
[<AllowNullLiteral>]
type ProjectRequestMessage() =
member val Header:Header = null with get,set
member val ProjectReference:Reference = null with get,set
member val IncludeHousingTypes:Boolean = new Boolean() with get,set
member val IncludeConstructionBlocks:Boolean = new Boolean() with get,set
member val IncludeConstructionNumbers:Boolean = new Boolean() with get,set
member val IncludeDocuments:Boolean = new Boolean() with get,set
member val IncludePurchaseContracts:Boolean = new Boolean() with get,set
[<AllowNullLiteral>]
type ProcessProjectRequestMessage() =
member val InstanceId:Guid = new Guid() with get,set
member val ProjectRequest:ProjectRequestMessage = null with get,set
[<AllowNullLiteral>]
type CustomField() =
member val Name:String = null with get,set
member val Value:String = null with get,set
[<AllowNullLiteral>]
type HousingType() =
member val GlobalID:String = null with get,set
member val ProjectReference:Reference = null with get,set
member val Code:String = null with get,set
member val Description:String = null with get,set
member val CustomFields:CustomField[] = [||] with get,set
member val CreationDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val CreatedBy:String = null with get,set
member val ModifiedDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val ModifiedBy:String = null with get,set
[<AllowNullLiteral>]
type ConstructionBlock() =
member val GlobalID:String = null with get,set
member val ProjectReference:Reference = null with get,set
member val Code:String = null with get,set
member val Description:String = null with get,set
member val CustomFields:CustomField[] = [||] with get,set
member val CreationDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val CreatedBy:String = null with get,set
member val ModifiedDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val ModifiedBy:String = null with get,set
[<AllowNullLiteral>]
type ConstructionNumber() =
member val GlobalID:String = null with get,set
member val ProjectReference:Reference = null with get,set
member val HousingTypeReference:Reference = null with get,set
member val ConstructionBlockReference:Reference = null with get,set
member val Code:String = null with get,set
member val Description:String = null with get,set
member val Address:Address = null with get,set
member val RentalHouse:Boolean = new Boolean() with get,set
member val GuaranteeCertificateNumber:String = null with get,set
member val Inactive:Boolean = new Boolean() with get,set
member val CustomFields:CustomField[] = [||] with get,set
member val CreationDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val CreatedBy:String = null with get,set
member val ModifiedDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val ModifiedBy:String = null with get,set
member val ViewingDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val ViewingDateSpecified:Boolean = new Boolean() with get,set
member val DeliveryDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val DeliveryDateSpecified:Boolean = new Boolean() with get,set
[<AllowNullLiteral>]
type Document() =
member val ID:Guid = new Guid() with get,set
member val RootDocumentID:Guid = new Guid() with get,set
member val RegistrationprofileID:Guid = new Guid() with get,set
member val Title:String = null with get,set
member val FullTitle:String = null with get,set
member val Number:String = null with get,set
member val Version:String = null with get,set
member val ExternalNumber:String = null with get,set
member val ExternalVersion:String = null with get,set
member val InternalNumber:String = null with get,set
member val InternalInvoiceNumber:String = null with get,set
member val PersonID:Int32 = new Int32() with get,set
member val RelationID:Int32 = new Int32() with get,set
member val RelationTitle:String = null with get,set
member val ProjectID:Int32 = new Int32() with get,set
member val ProjectTitle:String = null with get,set
member val Extension:String = null with get,set
member val Date:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val CommentsCount:Int32 = new Int32() with get,set
member val HasComments:Boolean = new Boolean() with get,set
member val HasPreview:Boolean = new Boolean() with get,set
member val ExtraField:String = null with get,set
member val IsFavorite:Boolean = new Boolean() with get,set
member val DocumentcategoryText:String = null with get,set
member val FileSize:Nullable<Int64> = new Nullable<Int64>() with get,set
member val FileDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val Hash:String = null with get,set
member val HashType:String = null with get,set
member val FileUrl:String = null with get,set
member val StandardDocumentUrl:String = null with get,set
member val IsCorporateIdentity:Boolean = new Boolean() with get,set
member val UserTitle:String = null with get,set
member val IsFrozen:Boolean = new Boolean() with get,set
member val InternalCompanyID:Int32 = new Int32() with get,set
member val DirectUrl:String = null with get,set
member val AllowDigitalSigningOnlyOnPrimaryVersions:Boolean = new Boolean() with get,set
member val IsPrimaryVersion:Boolean = new Boolean() with get,set
member val FileExtension:String = null with get,set
member val CustomProperties:Dictionary<String, Object> = new Dictionary<String, Object>() with get,set
[<AllowNullLiteral>]
type Relation() =
member val GlobalID:String = null with get,set
member val NameLine1:String = null with get,set
member val NameLine2:String = null with get,set
member val Address:Address = null with get,set
member val MailingAddress:MailingAddress = null with get,set
member val Telephone:String = null with get,set
member val Mobile:String = null with get,set
member val Email:String = null with get,set
member val IBAN:String = null with get,set
member val BankAccountNumber:String = null with get,set
member val Website:String = null with get,set
member val Inactive:Boolean = new Boolean() with get,set
member val CustomFields:CustomField[] = [||] with get,set
member val CreationDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val CreatedBy:String = null with get,set
member val ModifiedDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val ModifiedBy:String = null with get,set
[<AllowNullLiteral>]
type PurchaseContract() =
member val GlobalID:String = null with get,set
member val Code:String = null with get,set
member val Description:String = null with get,set
member val ProjectReference:Reference = null with get,set
member val ProductCode:String = null with get,set
member val Relation:Relation = null with get,set
member val Inactive:Boolean = new Boolean() with get,set
member val CustomFields:CustomField[] = [||] with get,set
member val CreationDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val CreatedBy:String = null with get,set
member val ModifiedDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val ModifiedBy:String = null with get,set
F# ProcessProjectRequestMessage DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /jsv/reply/ProcessProjectRequestMessage HTTP/1.1
Host: kpm_digiofficeapigateway.tbi.nl
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
ProjectRequest:
{
Header:
{
MessageID: String,
Timestamp: 0001-01-01,
Sender:
{
Title: String,
Code: String,
Version: String,
Environment:
{
Title: String,
Code: String
}
},
Recipient:
{
Title: String,
Code: String,
Version: String,
Environment:
{
Title: String,
Code: String
}
},
RequestMessageID: {}
},
ProjectReference:
{
GlobalID: String,
Title: String
},
IncludeHousingTypes: False,
IncludeConstructionBlocks: False,
IncludeConstructionNumbers: False,
IncludeDocuments: False,
IncludePurchaseContracts: False
}
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
Header:
{
MessageID: String,
Timestamp: 0001-01-01,
Sender:
{
Title: String,
Code: String,
Version: String,
Environment:
{
Title: String,
Code: String
}
},
Recipient:
{
Title: String,
Code: String,
Version: String,
Environment:
{
Title: String,
Code: String
}
},
RequestMessageID: {}
},
ProjectReference:
{
GlobalID: String,
Title: String
},
Project:
{
GlobalID: String,
CreationDate: 0001-01-01,
CreatedBy: String,
ModifiedDate: 0001-01-01,
ModifiedBy: String,
Code: String,
Name: String,
Description1: String,
Description2: String,
Address:
{
AddressLine1: String,
AddressLine2: String,
HouseNumber: String,
HouseNumberSuffix: String,
PostalCode: String,
City: String,
Country:
{
GlobalID: String,
Title: String
}
},
MailingAddress:
{
POBox: String,
PostalCode: String,
City: String,
Country:
{
GlobalID: String,
Title: String
}
},
ProjectCategoryReference:
{
GlobalID: String,
Title: String
},
ProjectTypeReference:
{
GlobalID: String,
Title: String
},
ProjectStatusReference:
{
GlobalID: String,
Title: String
},
StartDate: 0001-01-01,
EndDate: 0001-01-01,
CompletionDate: 0001-01-01,
Inactive: False,
Website: String,
IsTemplateProject: False,
CustomFields:
[
{
Name: String,
Value: String
}
]
},
HousingTypes:
[
{
GlobalID: String,
ProjectReference:
{
GlobalID: String,
Title: String
},
Code: String,
Description: String,
CustomFields:
[
{
Name: String,
Value: String
}
],
CreationDate: 0001-01-01,
CreatedBy: String,
ModifiedDate: 0001-01-01,
ModifiedBy: String
}
],
ConstructionBlocks:
[
{
GlobalID: String,
ProjectReference:
{
GlobalID: String,
Title: String
},
Code: String,
Description: String,
CustomFields:
[
{
Name: String,
Value: String
}
],
CreationDate: 0001-01-01,
CreatedBy: String,
ModifiedDate: 0001-01-01,
ModifiedBy: String
}
],
ConstructionNumbers:
[
{
GlobalID: String,
ProjectReference:
{
GlobalID: String,
Title: String
},
HousingTypeReference:
{
GlobalID: String,
Title: String
},
ConstructionBlockReference:
{
GlobalID: String,
Title: String
},
Code: String,
Description: String,
Address:
{
AddressLine1: String,
AddressLine2: String,
HouseNumber: String,
HouseNumberSuffix: String,
PostalCode: String,
City: String,
Country:
{
GlobalID: String,
Title: String
}
},
RentalHouse: False,
GuaranteeCertificateNumber: String,
Inactive: False,
CustomFields:
[
{
Name: String,
Value: String
}
],
CreationDate: 0001-01-01,
CreatedBy: String,
ModifiedDate: 0001-01-01,
ModifiedBy: String,
ViewingDate: 0001-01-01,
ViewingDateSpecified: False,
DeliveryDate: 0001-01-01,
DeliveryDateSpecified: False
}
],
Documents:
[
{
GlobalID: String,
RootDocumentID: String,
Code: String,
Subject: String,
VersionNumber: String,
NewestVersion: False,
RelationReference:
{
GlobalID: String,
Title: String
},
DocumentTypeReference:
{
GlobalID: String,
Title: String
},
ProjectReference:
{
GlobalID: String,
Title: String
},
ConstructionBlockReference:
{
GlobalID: String,
Title: String
},
ConstructionNumberReference:
{
GlobalID: String,
Title: String
},
HousingTypeReference:
{
GlobalID: String,
Title: String
},
Floor: 0,
FloorSpecified: False,
DeletedDate: 0001-01-01,
DeletedDateSpecified: False,
File:
{
Type: String,
Name: String,
Size: 0,
Content: String,
ModifiedDate: 0001-01-01
},
CustomFields:
[
{
Name: String,
Value: String
}
],
CreationDate: 0001-01-01,
CreatedBy: String,
ModifiedDate: 0001-01-01,
ModifiedBy: String
}
],
PurchaseContracts:
[
{
GlobalID: String,
Code: String,
Description: String,
ProjectReference:
{
GlobalID: String,
Title: String
},
ProductCode: String,
Relation:
{
GlobalID: String,
NameLine1: String,
NameLine2: String,
Address:
{
AddressLine1: String,
AddressLine2: String,
HouseNumber: String,
HouseNumberSuffix: String,
PostalCode: String,
City: String,
Country:
{
GlobalID: String,
Title: String
}
},
MailingAddress:
{
POBox: String,
PostalCode: String,
City: String,
Country:
{
GlobalID: String,
Title: String
}
},
Telephone: String,
Mobile: String,
Email: String,
IBAN: String,
BankAccountNumber: String,
Website: String,
Inactive: False,
CustomFields:
[
{
Name: String,
Value: String
}
],
CreationDate: 0001-01-01,
CreatedBy: String,
ModifiedDate: 0001-01-01,
ModifiedBy: String
},
Inactive: False,
CustomFields:
[
{
Name: String,
Value: String
}
],
CreationDate: 0001-01-01,
CreatedBy: String,
ModifiedDate: 0001-01-01,
ModifiedBy: String
}
]
}